var express = require('express');
var router = express.Router();
const md5 = require('md5');
// 导入 用户的模型
const UserModel = require('../../models/UserModel');
// 1. 引入 express-session 和 connect-mongo
// const session = require('express-session');
// const MongoStore = require('connect-mongo');

// 注册
router.get('/reg', (req, res) => {
    // 响应 HTML 内容
    res.render('auth/reg');
});


router.post('/reg', (req, res) => {
    // 可以在这里做表单验证
    // ....

    // 获取请求体的数据
    // UserModel.create(req.body)
    UserModel.create({ ...req.body, password: md5(req.body.password) })
        .then((data) => {
            // 注册成功，实现跳转等操作
            res.render('success', { msg: '注册成功', url: '/login' });
        })
        .catch((err) => {
            // 注册失败
            res.status(500).send('注册失败，请稍后再试');
        });
})


// 登录页面
router.get('/login', (req, res) => {
    // 响应 HTML 内容
    res.render('auth/login');
});


// 登录操作
router.post('/login', (req, res) => {
    // 获取用户名和密码
    let { username, password } = req.body;

    // 查询数据库
    UserModel.findOne({ username: username, password: md5(password) }).exec()
        .then((data) => {
            // console.log(data);
            if (!data) {
                res.render('success', { msg: '账号或密码错误。', url: '/login' });
                return;
            }

            // 写入session
            req.session.username = data.username
            req.session._id = data._id

            // 登录成功响应
            res.render('success', { msg: '登录成功', url: '/account' });
        })
        .catch((err) => {
            console.log(err);

            res.status(500).send('登录失败，请稍后再试。');
        });
});



// 退出登录
router.get('/logout', (req, res) => {
    // 销毁session
    req.session.destroy(() => {
        res.render('success', { msg: '退出成功。', url: '/login' });
    });
});


module.exports = router;